Next: Autoinserting, Previous: Skeleton Language, Up: Top [Contents][Index]
Various characters usually appear in pairs. When, for example, you insert an open parenthesis, no matter whether you are programming or writing prose, you will surely enter a closing one later. By entering both at the same time and leaving the cursor in between, Emacs can guarantee you that such parentheses are always balanced. And if you have a non-qwerty keyboard, where typing some of the stranger programming language symbols makes you bend your fingers backwards, this can be quite relieving too.
This is done by binding the first key (see
Rebinding in The GNU Emacs Manual) of the pair
to skeleton-pair-insert-maybe instead of
self-insert-command. The “maybe” comes
from the fact that this at-first surprising behavior is initially
turned off. To enable it, you must set skeleton-pair
to some non-nil value. And even then, a positive
argument (see
Arguments in The GNU Emacs Manual) will make
this key behave like a self-inserting key (see
Inserting Text in The GNU Emacs
Manual).
While this breaks with the stated intention of always
balancing pairs, it turns out that one often doesn’t want
pairing to occur, when the following character is part of a word.
If you want pairing to occur even then, set
skeleton-pair-on-word to some non-nil
value.
Pairing is possible for all visible characters. By default the
parenthesis ‘(’, the square bracket
‘[’, the brace
‘{’ and the pointed bracket
‘<’ all pair with the symmetrical
character, and the grave accent ‘`’
pairs with the apostrophe ‘'’. All other
characters pair themselves. This behavior can be modified by the
variable skeleton-pair-alist. This is in fact an
alist of skeletons (see Skeleton
Language), with the first part of each sublist matching the
typed character. This is the position of the interactor, but
since pairs don’t need the str element, this
is ignored.
Some modes have bound the command
skeleton-pair-insert-maybe to relevant keys. These
modes also configure the pairs as appropriate. For example, when
typing TeX input, you’d expect the grave accent
(‘`’) to pair with the apostrophe
(‘'’), while in Shell script mode it
must pair to itself. They can also inhibit pairing in certain
contexts. For example an escaped character stands for itself.
Next: Autoinserting, Previous: Skeleton Language, Up: Top [Contents][Index]